﻿Imports DaveSexton.Labs

Partial Friend NotInheritable Class Catalog
	Inherits LabCatalog

	Public Overrides ReadOnly Property Activation As LabActivationStrategies
		Get
			Return LabActivationStrategies.AllWithExclusions
		End Get
	End Property

	Public Overrides ReadOnly Iterator Property LabTypes As IEnumerable(Of Type)
		Get
			' Yield lab types that must not be activated.
		End Get
	End Property

	Public Overrides ReadOnly Iterator Property PriorityLabs As IEnumerable(Of ILab)
		Get
			' Catalog - Anonymous.vb
			' 
			' The anonymous lab is executed first when enabled.
			'
			Yield New AnonymousLab(enabled:=AnonymousEnabled, main:=AddressOf Anonymous)

			' Catalog - Priority.vb
			' 
			' Labs specified here will not be executed again when they are discovered by MEF.
			'
			For Each lab As ILab In If(GetPriorityLabs(), Enumerable.Empty(Of ILab)())
				Yield lab
			Next
		End Get
	End Property
End Class